package proyecto.gestionarDatosDeCursos;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import proyecto.BusinessLogic.CursoBLRemote;
import proyecto.EntityBeans.Curso;
import util.Common;
 
public class ObtenerCursoAction extends Action {
	
	protected ActionForm construirAltaCursoForm(String id)
			throws Exception {
		
		AltaCursoForm form = null;
		CursoBLRemote cursoBLRemote = null;
		Curso curso = null;
		final Context context;
		Integer idCurso = Integer.valueOf(id);
		
		try {	
			context = new InitialContext();					
			cursoBLRemote = (CursoBLRemote) context.lookup("CursoBL/remote");
		}
		catch (NamingException e)				{
			e.printStackTrace();
			throw new RuntimeException(e);				
		}
		
		System.out.println("antes de encontrar el curso");
		curso = cursoBLRemote.findById(idCurso);
		System.out.println("fecha del curso obtenido" + curso.getFechaAlta().toString());
		System.out.println("curso encontrado en ObtenerCursoAction " + curso.getIdCurso());
		
		if ( curso != null ) {
			form = new AltaCursoForm();
			form.setIdCurso(curso.getIdCurso());
			form.setNombre(curso.getNombre());
			form.setDescripcion(curso.getDescripcion());
			System.out.println("antes de poner la fecha");
			form.setFechaAlta(curso.getFechaAlta().toString());
			System.out.println("despues de poner la fecha");
		}
		else {
			throw new Exception("Curso " + idCurso + " no encontrado!");
		}
		
		return form;
	}
	
	
	public ActionForward execute(
			ActionMapping mapping,
			ActionForm form,			
			HttpServletRequest request,
			HttpServletResponse response) {
								
			try {
				form = this.construirAltaCursoForm(request.getParameter("idCurso"));
				System.out.println("despues de construir el form");				
				if ("request".equals(mapping.getScope())) {				
					request.setAttribute(mapping.getAttribute(), form);
					System.out.println("setee el form en el request");
				}				
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
											
			return mapping.findForward(Common.SUCCESS);				
		}
		
}
